// 7-6 求特殊方程的正整数解
#include <stdio.h>
#include <math.h>

int main()
{
    int N;
    scanf("%d", &N);
    int root = sqrt(N);
    int n_solution = 0;
    // 从1开始计数; root可到达（因为浮点数转整形有丢失）
    for (int i=1; i<=root; i++) {
        for (int j=i; j<=root; j++) {
            if (i*i + j*j == N) {
                printf("%d %d\n", i, j);
                n_solution++;
            }
        }
    }
    // 无解也要输出
    if (n_solution == 0) {
        printf("No Solution\n");
    }
    return 0;
}